InputStream এবং OutputStream এর মাধ্যমে ডেটা পরিচালনা

Java Technologies - অ্যাপাচি কমন্স আইও (Apache Common IO) File Streams ব্যবস্থাপনা |
141
141

Apache Commons IO লাইব্রেরি Java-তে ইনপুট এবং আউটপুট (IO) স্ট্রিম অপারেশনকে সহজ এবং কার্যকরী করে তোলে। এটি InputStream এবং OutputStream এর মাধ্যমে ডেটা পরিচালনা করার জন্য কিছু শক্তিশালী টুল সরবরাহ করে, যার মাধ্যমে আপনি ফাইল পড়া, লেখা, কপি করা এবং স্ট্রিম সম্পর্কিত অন্যান্য কাজ দ্রুত ও নিরাপদভাবে করতে পারেন।

এই লেখায়, আমরা InputStream এবং OutputStream ব্যবহার করে ডেটা পরিচালনা করার জন্য Apache Commons IO এর কিছু গুরুত্বপূর্ণ ফিচার এবং উদাহরণ আলোচনা করব।


InputStream এবং OutputStream এর ভূমিকা

  • InputStream: এটি একটি অ্যাবস্ট্রাক্ট ক্লাস যা বাইট ডেটা ইনপুট (পড়া) করার জন্য ব্যবহৃত হয়। এর মাধ্যমে আপনি ফাইল, নেটওয়ার্ক, অথবা কনসোল থেকে ডেটা পড়তে পারেন।
  • OutputStream: এটি একটি অ্যাবস্ট্রাক্ট ক্লাস যা বাইট ডেটা আউটপুট (লেখা) করার জন্য ব্যবহৃত হয়। এর মাধ্যমে আপনি ফাইল, নেটওয়ার্ক, অথবা কনসোলের মধ্যে ডেটা লিখতে পারেন।

Apache Commons IO লাইব্রেরি এই স্ট্রিম অপারেশনগুলো আরও সহজ ও কার্যকরী করার জন্য কিছু ইউটিলিটি ক্লাস সরবরাহ করে, যেমন IOUtils


IOUtils এর মাধ্যমে InputStream এবং OutputStream এর ব্যবহার

IOUtils ক্লাসটি InputStream এবং OutputStream এর সাথে কাজ করার জন্য অনেক ইউটিলিটি মেথড সরবরাহ করে, যার মাধ্যমে স্ট্রিম কপি, স্ট্রিম ক্লোজ, বাইট অ্যারে থেকে স্ট্রিম তৈরি করা এবং অন্যান্য কাজ করা সম্ভব।


1. InputStream থেকে OutputStream এ ডেটা কপি করা

IOUtils.copy() মেথডটি ব্যবহার করে আপনি একটি InputStream থেকে ডেটা কপি করে একটি OutputStream এ লিখতে পারেন। এটি একটি সাধারণ এবং কার্যকরী পদ্ধতি, যা ফাইল কপি বা স্ট্রিমের মধ্যে ডেটা স্থানান্তরের জন্য ব্যবহৃত হয়।

InputStream থেকে OutputStream এ কপি উদাহরণ:

import org.apache.commons.io.IOUtils;
import java.io.*;

public class StreamCopyExample {
    public static void main(String[] args) {
        try (InputStream inputStream = new FileInputStream("source.txt");
             OutputStream outputStream = new FileOutputStream("destination.txt")) {

            // Copy data from input stream to output stream
            IOUtils.copy(inputStream, outputStream);

            System.out.println("Data copied successfully!");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে:

  • IOUtils.copy(inputStream, outputStream) মেথডটি source.txt ফাইলের ডেটা destination.txt ফাইলে কপি করে।
  • try-with-resources ব্লক ব্যবহার করা হয়েছে যাতে স্ট্রিমগুলো স্বয়ংক্রিয়ভাবে ক্লোজ হয়ে যায়।

2. InputStream থেকে স্ট্রিং এ ডেটা রিড করা

কখনও কখনও, আপনাকে InputStream থেকে String পড়তে হতে পারে। IOUtils.toString() মেথডটি এই কাজটি খুব সহজভাবে করে দেয়।

InputStream থেকে স্ট্রিং রিড করার উদাহরণ:

import org.apache.commons.io.IOUtils;
import java.io.*;

public class InputStreamToStringExample {
    public static void main(String[] args) {
        try (InputStream inputStream = new FileInputStream("input.txt")) {
            // Convert InputStream to String
            String content = IOUtils.toString(inputStream, "UTF-8");

            System.out.println("File content: ");
            System.out.println(content);

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে:

  • IOUtils.toString(inputStream, "UTF-8") মেথডটি InputStream থেকে String আকারে ডেটা রিড করেছে।
  • UTF-8 এনকোডিং ব্যবহৃত হয়েছে, যা সাধারণত স্ট্রিং রিড করার জন্য ব্যবহৃত হয়।

3. OutputStream এ স্ট্রিং লেখানো

IOUtils.write() মেথডটি স্ট্রিং বা বাইট অ্যারে OutputStream এ লেখার জন্য ব্যবহৃত হয়।

OutputStream এ স্ট্রিং লেখানোর উদাহরণ:

import org.apache.commons.io.IOUtils;
import java.io.*;

public class OutputStreamWriteExample {
    public static void main(String[] args) {
        try (OutputStream outputStream = new FileOutputStream("output.txt")) {
            // Write a string to the output stream
            String content = "This is a test message.";
            IOUtils.write(content, outputStream, "UTF-8");

            System.out.println("Data written successfully!");

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে:

  • IOUtils.write(content, outputStream, "UTF-8") মেথডটি স্ট্রিংকে output.txt ফাইলে লিখেছে।
  • UTF-8 এনকোডিং ব্যবহৃত হয়েছে স্ট্রিং লেখার জন্য।

4. Byte Array থেকে InputStream তৈরি করা

IOUtils.toInputStream() মেথডটি একটি byte array থেকে InputStream তৈরি করতে ব্যবহৃত হয়, যা অন্য কোথাও স্ট্রিম হিসেবে ব্যবহৃত হতে পারে।

Byte Array থেকে InputStream তৈরি করার উদাহরণ:

import org.apache.commons.io.IOUtils;
import java.io.*;

public class ByteArrayToStreamExample {
    public static void main(String[] args) {
        try {
            // Convert byte array to InputStream
            String text = "Hello, Apache Commons IO!";
            byte[] byteArray = text.getBytes("UTF-8");

            InputStream inputStream = IOUtils.toInputStream(new String(byteArray), "UTF-8");

            // Read the content from InputStream
            String content = IOUtils.toString(inputStream, "UTF-8");
            System.out.println("Content from byte array: " + content);

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

এখানে:

  • IOUtils.toInputStream() মেথডটি বাইট অ্যারে থেকে InputStream তৈরি করেছে এবং IOUtils.toString() এর মাধ্যমে সেই স্ট্রিম থেকে ডেটা পড়েছে।

5. Stream ক্লোজ করা

IOUtils.closeQuietly() মেথডটি স্ট্রিম সঠিকভাবে ক্লোজ করার জন্য ব্যবহৃত হয়, যাতে কোনো IOException ছুঁড়ে না দেয়। এটি সাধারণত স্ট্রিম ব্যবহারের পর সব ধরনের স্ট্রিম নিরাপদভাবে ক্লোজ করতে সহায়তা করে।

Stream ক্লোজ করার উদাহরণ:

import org.apache.commons.io.IOUtils;
import java.io.*;

public class CloseStreamExample {
    public static void main(String[] args) {
        InputStream inputStream = null;

        try {
            inputStream = new FileInputStream("input.txt");

            // Process input stream (for example)
            String content = IOUtils.toString(inputStream, "UTF-8");

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            // Properly close the input stream
            IOUtils.closeQuietly(inputStream);
        }
    }
}

এখানে:

  • IOUtils.closeQuietly() মেথডটি ইনপুট স্ট্রিমটি সঠিকভাবে ক্লোজ করার জন্য ব্যবহৃত হয়েছে।

সারাংশ

Apache Commons IO লাইব্রেরি InputStream এবং OutputStream এর মাধ্যমে ডেটা পরিচালনা করার জন্য কিছু শক্তিশালী মেথড সরবরাহ করে, যেমন IOUtils.copy(), IOUtils.toString(), IOUtils.write(), IOUtils.toInputStream(), এবং IOUtils.closeQuietly()। এগুলির মাধ্যমে আপনি স্ট্রিমের মধ্যে ডেটা কপি, রিড এবং রাইট করতে পারেন, এবং স্ট্রিম সঠিকভাবে ক্লোজ করতে পারেন। এই ইউটিলিটি মেথডগুলো Java IO স্ট্রিমের ব্যবহারকে আরও সহজ এবং কার্যকরী করে তোলে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion